10819 - Trouble of 13-Dots (DP, programación dinámica, Knapsack 0/1) && 820 - Interne...
[andmenj-acm.git] / Mi manual de algoritmos / manual.tex
blobf37f5ab15199f17712f2c51a43d2e32d046d5f26
1 \documentclass[10pt,a4paper,twoside]{article}
3 %---------------------------------------------------------------
4 \usepackage[utf8]{inputenc}
5 \usepackage[spanish]{babel}
6 \usepackage{listings}
7 \usepackage{color}
8 %---------------------------------------------------------------
10 \begin{document}
12 %---------------------------------------------------------------
13 \title{Resumen de algoritmos para torneos de programación}
14 \author{Andrés Mejía}
15 \date{\today}
16 \maketitle
17 %---------------------------------------------------------------
19 %---------------------------------------------------------------
20 \tableofcontents
21 \lstlistoflistings
22 \lstloadlanguages{C++}
23 %---------------------------------------------------------------
25 %---------------------------------------------------------------
26 \definecolor{colorkeywords}{rgb}{0.5, 0.0, 0.3}
27 \definecolor{colorcomments}{rgb}{0.2, 0.4, 0.3}
28 \definecolor{colorstrings}{rgb}{0.2, 0.0, 1.0}
29 \lstset{frame=tRBl}
30 \lstset{keywordstyle=\color{colorkeywords}\bfseries}
31 \lstset{commentstyle=\color{colorcomments}\textit}
32 \lstset{stringstyle=\color{colorstrings}}
33 \lstset{numbers=left, numberstyle=\tiny, stepnumber=2, numbersep=5pt}
34 %---------------------------------------------------------------
36 %---------------------------------------------------------------
37 \section{Teoría de números}
38 %---------------------------------------------------------------
39 \subsection{Big mod}
40 \lstset{language=c++}
41 %\lstset{backgroundcolor=listinggray,framerulecolor=blue}
42 %\lstset{backgroundcolor=listinggray,rulecolor=blue}
43 %\lstset{backgroundcolor=\color{listinggray},rulecolor=\color{blue}}
44 %\lstset{linewidth=\textwidth}
45 %\lstset{labelstep=10}
46 %\lstset{commentstyle=\textit, stringstyle=\upshape,stringspaces=false}
47 %\lstset{commentstyle=\textit, stringstyle=\upshape,showspaces=false}
48 \lstinputlisting[caption=Big mod]{./src/number_theory/bigmod.cpp}
50 \subsection{Criba de Eratóstenes}
51 Marca los números primos en un arreglo. Algunos tiempos de ejecución:
52 \centering
53 \begin{tabular}{c c}
54 \hline\hline
55 SIZE & Tiempo (s) \\ [0.5ex]
56 \hline
57 100000 & 0.004 \\
58 1000000 & 0.078 \\
59 10000000 & 1.550 \\
60 100000000 & 14.319 \\ [1ex]
61 \hline
62 \end{tabular}
63 \lstinputlisting[caption=Criba de Eratóstenes]{./src/number_theory/criba.cpp}
65 \subsection{Divisores de un número}
66 Este algoritmo imprime todos los divisores de un número (en desorden) en O($\sqrt{n}$).
67 Hasta 4294967295 (máximo \textit{unsigned long}) responde instantaneamente. Se puede
68 forzar un poco más usando \textit{unsigned long long} pero más allá de $10^{12}$ empieza a
69 responder muy lento.
71 \lstinputlisting[caption=Divisores]{./src/number_theory/divisores.cpp}
74 \section{Programación dinámica}
75 \subsection{Longest common subsequence}
76 \lstinputlisting[caption=Longest common subsequence]{./src/dp/lcs.cpp}
79 \end{document}
80 %---------------------------------------------------------------